package com.jason.cloud.engine.share.driver.user.dao;

import com.jason.cloud.engine.share.driver.user.bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDao {

    /**
     * 根据ID查询对象
     * @param id
     * @return
     */
    UserBean queryUserById(String id);

    /**
     * 保存
     * @param user
     * @return
     */
    void insertUser(UserBean user);

    /**
     * 根据Tel查询对象
     * @param tel
     * @return
     */
    int existTel(String tel);

    /**
     * 根据手机号或邮箱登录
     * @param loginName
     * @return
     */
    UserBean queryUserByLoginName(String loginName);

    /**
     * 根据EMAIL查询对象
     * @param email
     * @return
     */
    int existEmail(String email);

    /**
     * 根据邮箱找回密码
     * @param userBean
     */
    void forgetPasswordByEmail(UserBean userBean);

    /**
     * 列举所有员工
     * @return
     */
    List<UserBean> getUserLimitByEnterpriseId(@Param("page") int page, @Param("size") int size, @Param("enterpriseId") String enterpriseId);

    /**
     * 计数员工
     * @return
     */
    int getUserCountByEnterpriseId(@Param("enterpriseId") String enterpriseId);

    /**
     * 状态更新
     * @param userBean
     */
    void updateUserParamById(UserBean userBean);

    /**
     * 设置用户默认展示项目
     * @param userBean
     */
    void updateUserActiveProjectById(UserBean userBean);
}
